package net.valerijtimakov.homefinances.dao.storages.finances;

import java.util.Map;
import net.valerijtimakov.homefinances.domain.finances.CurrencyItem;
import net.valerijtimakov.homefinances.exceptions.AppExceptionWrongState;
import net.valerijtimakov.homefinances.exceptions.AppPersProviderException;
import net.valerijtimakov.homefinances.exceptions.AppPersistentException;
import net.valerijtimakov.homefinances.exceptions.wrongarg.AppExceptionNullArgument;

public interface ICurrencyStorage {
	Map<Long, CurrencyItem> getAllCurrencies() throws AppPersProviderException, AppExceptionWrongState;
	Map<Long, CurrencyItem> getCurrencies(long ... id) throws AppPersProviderException, AppExceptionWrongState;
	void addCurrency(CurrencyItem item) throws AppExceptionNullArgument, AppExceptionWrongState, AppPersistentException;
	void removeCurrency(long id) throws AppPersProviderException, AppExceptionWrongState;
	void updateCurrency(CurrencyItem item) throws AppPersProviderException, AppExceptionWrongState;
}
